https://www.knrm.nl/
by Dirk Smits https://github.com/OpenCPN/OpenCPN/pull/1191
The KNRM is running 48 lifeboat station with voluntary crews. Most lifeboat station use OpenCPN to track there boats when in action. For this tracking 10+ base stations do have AIS receivers and the data of this receivers is merged and made available to every station. This leads to a few attention points that don't bother an ordinary user to much. [Editor's Note: However these improvements will make their way into the next release]:
First the huge number of targets (4000+) also gives a larger number of corrupted messages. Most of the time a corrupted message will be blocked by the nmea checksum being wrong. However the checksum is relative small (255) which means there is a change of 1 : 255 (0.4%) that a corrupted message does have the correct checksum. And with a lot of data this does happen. - Commit no 1 fixed this.
Crash of OpenCpN every now and then, caused by an entry in the mmsitoname.cvs file where shipsname was to long (more then 20 char) due to corruption.
Always uses the last received shipsname to show, even if the name is corrupted. - Changed the behaviour of the shipname saving by dividing it in confirmed and non-confirmed names. Where a confirmed name means two subsequent messages using the same name. Now O is using the confirmed name if available and otherwise the non-confirmed. By adding [Settings/AIS] UseOnlyConfirmedAISName=1 to the config file it is possible to only allow the use of confirmed names. This clears the AIS targetlist nicely from all corrupted data. And the mmsitoname.cvs does stay backwards compatible with older O versions.
With corrupted data not only the name is wrong, but also the position, resulting in a target going all over the world. Normally the next data packet will be OK again and the target is where it should be again. However if you have target-track drawn you also get a track to 'anywhere' and back. - Commit no 3 is to stop drawing the track if there is a jump in positions of more then 6 Nm. (Picture above new, under = old)
And the last commit is to make the entry under MMSI Properties VDM→VDO realy work. This is changing the name of the AIVDM sentence into AIVDO recalc the checksum and re-enter it as a new sentence. At the KNRM the staff at the base-station are using this to follow there boat as if they where onboard.